#include <stdio.h>
#include <time.h>

// 定义TIME为32位无符号整数
unsigned int TIME = 0;

// 定义每个时间单位的位移和掩码
#define HOURS_SHIFT 24
#define MINUTES_SHIFT 16
#define SECONDS_SHIFT 8
#define HOURS_MASK 0xFF000000
#define MINUTES_MASK 0x00FF0000
#define SECONDS_MASK 0x0000FF00

// 设置小时
void setHour(int h) {
    TIME &= ~HOURS_MASK;          // 清除小时位
    TIME |= (h << HOURS_SHIFT);   // 设置小时位
}

// 设置分钟
void setMinute(int m) {
    TIME &= ~MINUTES_MASK;        // 清除分钟位
    TIME |= (m << MINUTES_SHIFT); // 设置分钟位
}

// 设置秒
void setSecond(int s) {
    TIME &= ~SECONDS_MASK;        // 清除秒位
    TIME |= (s << SECONDS_SHIFT); // 设置秒位
}

int main() {
    // 获取当前时间
    time_t rawtime;
    struct tm * timeinfo;

    time(&rawtime);
    timeinfo = localtime(&rawtime);

    // 调用函数设置当前时间
    setHour(timeinfo->tm_hour);
    setMinute(timeinfo->tm_min);
    setSecond(timeinfo->tm_sec);

    // 打印当前时间
    printf("Current TIME: %X\n", TIME);

    return 0;
}

